﻿$.blockUI.defaults.message = "Пожалуйста подождите ...";
$.blockUI.defaults.css.border = 'none';
$.blockUI.defaults.css.padding = '15px';
$.blockUI.defaults.css.backgroundColor = '#000';
$.blockUI.defaults.css.opacity = .5;
$.blockUI.defaults.css.color = '#fff';
$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);

(function () {
	rf.ajax =
		{
			post: function (url, dataParam, callbackParam, sender) {
				rf.ajax.send('POST', url, dataParam, callbackParam, sender);
			},

			get: function (url, dataParam, callbackParam, sender) {
				rf.ajax.send('GET', url, dataParam, callbackParam, sender);
			},

			send: function (type, url, dataParam, callbackParam, sender) {
				var paramObj = typeof (dataParam) == 'object' ? dataParam : {};

				window.status = "Please wait...";
				document.body.style.cursor = "wait";

				var callBackFunc = typeof (callbackParam) == 'function' ? callbackParam : (typeof (dataParam) == 'function' ? dataParam : null);

				$.ajax({
					url: url,
					type: type,
					data: paramObj,
					success: function (result) {
						window.status = "Done";
						document.body.style.cursor = "default";

						if (result.status == 204) {
							window.location.reload();
							return;
						}

						if (callBackFunc != null)
							callBackFunc(result);
					},
					error: function (req, status, error) {
					}
				});
				//jQuery.ajax.post
				//var defaultDataType = 'html';
				//var defaultMethod = jQuery.post;
				//var paramObj = typeof (dataParam) == 'object' ? dataParam : {};
				//var callBackFunc = typeof (callbackParam) == 'function' ? callbackParam : (typeof (dataParam) == 'function' ? dataParam : null);
				//var dataType = typeof (callbackParam) == 'string' ? callbackParam : defaultDataType;
				//window.status = "Please wait...";
				//document.body.style.cursor = "wait";
				////showProgress();
				//defaultMethod(url, paramObj, function (data, textStatus, jqxhr) {
				//	if (jqxhr.status == 204) {
				//		window.location.reload();
				//		//alertMessage("Unauthorized", "Session is expired.");
				//		return;
				//	}

				//	//hideProgress();
				//	window.status = "Done";
				//	document.body.style.cursor = "default";
				//	if (data != 'Unauthorized') {
				//		var status = "";
				//		if (dataType == 'json')
				//			data = jQuery.parseJSON(data);

				//		var message = "";
				//		var title = "Error";
				//		try {
				//			if (data.indexOf('{"Status') == 0) {
				//				var res = jQuery.parseJSON(data);
				//				if (res.Status != "undefined")
				//					status = res.Status;
				//				if (res.Message != "undefined")
				//					message = res.Message;
				//				if (res.Title != "undefined")
				//					title = res.Title;
				//			}
				//		}
				//		catch (e) { }

				//		if (status == "Failed") {
				//			if (sender) {
				//				var vs = $(sender).find("div[class*=validation-summary]");
				//				if (vs.length > 0) {
				//					vs.addClass("validation-summary-errors");
				//					vs.removeClass("validation-summary-valid");
				//					var ul = vs.find("ul");
				//					if (ul.length > 0) {
				//						ul.html("");
				//						ul.append("<li>" + message + "</li>");
				//					} else {
				//						vs.html("");
				//						vs.append("<ul></ul>");
				//						ul.append("<li>" + message + "</li>");
				//					}
				//				}
				//				else
				//					alertMessage(title, message);
				//			} else
				//				alertMessage(title, message);
				//		} else if (callBackFunc != null)
				//			callBackFunc(data, textStatus, jqxhr);
				//	}
				//	else
				//		alertMessage("Error", "Unauthorized");
				//}, 'html');

				//function alertMessage(title, message) {
				//	var alertOverlay = $("#alertOverlay");
				//	$(alertOverlay).alertMessage(window.alertUrl, title, message, function () { $(sender).alert(); $(sender).toggle(); setTimeout(function () { $(sender).toggle(); }, 5000); });
				//};

				////function showProgress() {
				////	$.blockUI({
				////		message: 'Please wait ...',
				////		baseZ: 10000,
				////		css: {
				////			border: 'none',
				////			padding: '15px',
				////			backgroundColor: '#000',
				////			'-webkit-border-radius': '10px',
				////			'-moz-border-radius': '10px',
				////			opacity: .5,
				////			color: '#fff'
				////		}
				////	}
				////		);
				////}

				////function hideProgress() {
				////	$.unblockUI();
				////}
			}
		};
})();

